home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / source / lib / powerd_lib.lha / PowerD_PPC / Raise.ass < prev    next >
Text File  |  2001-07-08  |  770b  |  41 lines

  1. # Raise(exception:r3:UL,exceptioninfo:r4:UL)
  2.  
  3.     .sdreg    r2
  4.     .global    _Raise
  5.     .global    _exception
  6.     .global    _exceptioninfo
  7.     .global    lastexceptptr
  8.     .global    laststackptr
  9.     .global    lastframeptr
  10.     .global    lastlocalptr
  11.  
  12. _Raise:    stw    r3,_exception(r2)
  13.     stw    r4,_exceptioninfo(r2)
  14.     lwz    r3,lastexceptptr(r2)
  15.     mr.    r3,r3
  16.     beq    .exit
  17.     lwz    r11,lastlocalptr(r2)
  18.     stw    r13,lastframeptr(r2)
  19.     lwz    r1,laststackptr(r2)
  20.     lwz    r0,0(r11)
  21.     stw    r0,lastexceptptr(r2)
  22.     lwz    r0,4(r11)
  23.     stw    r0,laststackptr(r2)
  24.     lwz    r0,8(r11)
  25.     stw    r0,lastframeptr(r2)
  26.     lwz    r0,12(r11)
  27.     stw    r0,lastlocalptr(r2)
  28.     mtlr    r3
  29.     blr
  30. .exit:    b    mainend
  31.  
  32.     .tocd
  33. _exception:    .long    0
  34. _exceptioninfo:    .long    0
  35. lastexceptptr:    .long    0
  36. laststackptr:    .long    0    # r1 contents
  37. lastframeptr:    .long    0    # r13 contents
  38. lastlocalptr:    .long    0
  39.  
  40.     .extern    mainend
  41.